﻿using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.OracleClient;
using System.Collections.Generic;
using Biblioteca.DataBase;
using Biblioteca.Utils;
using SEG.Utils;
using Pms.Utils;

namespace SEG.Objetos
{
    public class Empresa_Grupo_Usuario
    {
        private string cod_empresa;              
        private string cod_usu;         
        private string cod_grp;

        public Empresa_Grupo_Usuario()
        {

        }

        public Empresa_Grupo_Usuario(string cod_empresa, string cod_usu, string cod_grp)
        {
            this.cod_empresa = cod_empresa;
            this.cod_usu = cod_usu;
            this.cod_grp = cod_grp;
        }



        public string Cod_grp
        {
            get { return cod_grp; }
            set { cod_grp = value; }
        }

        public string Cod_usu
        {
            get { return cod_usu; }
            set { cod_usu = value; }
        }

        public string Cod_empresa
        {
            get { return cod_empresa; }
            set { cod_empresa = value; }
        }


        public static void Excluir(string loginAut, List<Empresa_Grupo_Usuario> listEmpGrpUsu)
        {
            OracleCommand command = new OracleCommand();
            OracleTransaction trans;

            try
            {

                string sql = @"delete from seg_empresa_grupo_usuario where 
                               cod_empresa = :cod_empresa and cod_usu = :cod_usu and cod_grp = :cod_grp";


            command.Connection = BiblioPMS.ObterConexao(BiblioPMS.aplicacaoSEG, loginAut);                      
            trans = command.Connection.BeginTransaction();
            command.Transaction = trans;
            command.CommandText = sql;            
            

            foreach (Empresa_Grupo_Usuario objEmpGrpUsu in listEmpGrpUsu)
            {
                command.Parameters.Add(new OracleParameter("COD_EMPRESA", OracleType.Number));
                command.Parameters.Add(new OracleParameter("COD_USU", OracleType.Number));
                command.Parameters.Add(new OracleParameter("COD_GRP", OracleType.Number));

                command.Parameters["COD_EMPRESA"].Value = objEmpGrpUsu.cod_empresa;
                command.Parameters["COD_USU"].Value = objEmpGrpUsu.cod_usu;
                command.Parameters["COD_GRP"].Value = objEmpGrpUsu.cod_grp;

                command.ExecuteNonQuery();

                command.Parameters.Clear();

            }

            command.Transaction.Commit();

            }
            catch (Exception)
            {
                command.Transaction.Rollback();
                throw;
            }
            finally
            {
                command.Connection.Close();
            }

        }


        public static void Inserir(string loginAut, List<Empresa_Grupo_Usuario> listEmpGrpUsu)
        {
            OracleCommand command = new OracleCommand();
            OracleTransaction trans;

            try
            {

                string sql = @"insert into seg_empresa_grupo_usuario values (
                               :cod_empresa,:cod_usu,:cod_grp)";


                command.Connection = BiblioPMS.ObterConexao(BiblioPMS.aplicacaoSEG, loginAut);
                trans = command.Connection.BeginTransaction();
                command.Transaction = trans;
                command.CommandText = sql;


                foreach (Empresa_Grupo_Usuario objEmpGrpUsu in listEmpGrpUsu)
                {
                    command.Parameters.Add(new OracleParameter("COD_EMPRESA", OracleType.Number));
                    command.Parameters.Add(new OracleParameter("COD_USU", OracleType.Number));
                    command.Parameters.Add(new OracleParameter("COD_GRP", OracleType.Number));

                    command.Parameters["COD_EMPRESA"].Value = objEmpGrpUsu.cod_empresa;
                    command.Parameters["COD_USU"].Value = objEmpGrpUsu.cod_usu;
                    command.Parameters["COD_GRP"].Value = objEmpGrpUsu.cod_grp;

                    command.ExecuteNonQuery();

                    command.Parameters.Clear();

                }

                command.Transaction.Commit();

            }
            catch (Exception)
            {

                command.Transaction.Rollback();
                throw;
            }
            finally
            {
                command.Connection.Close();
            }

        }



        






    }
}
